perm filename LET.PUB[LET,JMC]22 blob
sn#512992 filedate 1980-05-27 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .<< Feature summary
C00005 00003 .DEVICE XGP
C00010 00004 .at "∂AIL" data "∞" ⊂
C00017 ENDMK
C⊗;
.<< Feature summary
.
.Start with
.require "let.pub[let,jmc]" source;
.Letterheads: ∂<type> <to>$<from>$<subject>$<date>∞
. <type> may be:
. AIL - AI Lab Letter
. MEM - AI Lab Memo
. CSL - CS letter
. CSM - CS memo
. HOM - home address letter
. SE2 - SE2 letter
. LOT - LOTS letter
. MLOT - LOTS memo
. <from> defaults depend on <type>,
. <date> defaults to today.
. Use "↓" wherever you want a CRLF.
.Signatures:
. .sgn - sincerely yours, with signature according to letterhead
. .sgnp - sincerely yours, John McCarthy
. .reg - best regards, with signature according to letterhead
. .regp - best regards, with no titles
.
.Other handy macros:
. FAC means FILL ADJUST
. CB "<sub-heading>" means make a centered boldface subheading. If the
. subheading contains any commas, be sure to enclose it in quotes.
. BOLDIT may be called within a block to cause quoted text " ... " to
. turn into boldface (without quotes) and broketed text < ... > to
. be put in italics (without brokets).
. REF may be called within a block to print "References:", then go into
. BOLDIT mode with a format suitable for a list of references.
.
.Below is the list of addressee abbreviations. Use as, e.g. "Dave Russell↓IPT".
.The abbreviation identifier may be up to 4 letters long.
.>>
.ARPA←"Advanced Research Projects Agency↓"&
. "1700 Wilson Boulevard↓Arlington, Virginia 22209";
.
.IPT←"Information Processing Techniques Office↓"&
. "Advanced Research Projects Agency↓"&
. "1700 Wilson Boulevard↓Arlington, Virginia 22209";
.DEVICE XGP
.bottom←56;
.page frame bottom high 85 wide
.area text lines 1 to bottom char 1 to 80;
.
.COUNT ITEM
.AT "#" ⊂NEXT ITEM;(ITEM!);⊃;
.
.TURN ON "%{α"
.font 1 "basl30"; font 2 "basi30"; font 3 "basb30";FONT B "BAXM30";FONT C "zero30";
.AT "ffi" ⊂ IF 0<THISFONT≤3 THEN "≠" ELSE "fαfαi" ⊃;
.AT "ffl" ⊂ IF 0<THISFONT≤3 THEN "α∞" ELSE "fαfαl" ⊃;
.AT "ff" ⊂ IF 0<THISFONT≤3 THEN "≥" ELSE "fαf" ⊃;
.AT "fi" ⊂ IF 0<THISFONT≤3 THEN "α≡" ELSE "fαi" ⊃;
.AT "fl" ⊂ IF 0<THISFONT≤3 THEN "∨" ELSE "fαl" ⊃;
.AT "--" ⊂ IF 0<THISFONT≤3 THEN "¬" ELSE "-α-" ⊃;
.
.at "↓"; ⊂ }
.⊃;
.
.macro letter(data,aut); ⊂
.<< namad = toname↓addr1↓addr2↓...$author$subject$date$saluation>>
.before page ⊂ ⊃;
.ODDLEFTBORDER←EVENLEFTBORDER←1000;
.if going=0 then going←1 else next page;
.nofill;
.count page from 2;
.salut←"data"; foo←scan(salut," ","","XR");
.xxx←namad←scan(salut,"$","","IS"); yyy←author←scan(salut,"$","","IS");
.subject←scan(salut,"$","","IS"); dat←scan(salut,"$","","IS");
.if length(dat)≤2 then dat←date;
.if length(author)≤2 then yyy←author←"aut";
.zzz←scan(yyy,",↓");
.zzz←scan(xxx,"↓","","IS"); ln←length(zzz);
.if length(namad)>ln+3 then start
. if length(namad)≤ln+7 then namad←zzz&"↓"&eval(xxx);
. end;
.name←scan(zzz,",");
.fill adjust;
. ⊃
.
.macro head; ⊂ nofill; SKIP 4; select 1;
.(namad)}
.subj;
.if length(salut)>1 then start
Dear {(salut);}:
.end
.⊃
.
.macro memo; ⊂ begin "memo"
.skip 3;
.fill; nojust; indent 0,8; crbreak; tabs 9; turn on "\%";
.xxx←namad; nam←scan(xxx,"↓");
To:\%1{nam}
%3From:\%1{author}
.end "memo";
.subj;
.⊃
.
.macro subj; ⊂
.fac;
.if length(subject)>2 then BEGIN "subject" turn on "%∂"; nojust; indent 0,8;crbreak;
%3Subject:∂9%1{subject}
.end "subject";
.before page ⊂ once turn on "%→←"; select 3;
.begin indent 0
.name}←{dat}→Page {page!}%*
.end
.skip;
. ⊃
.select 1;
. ⊃
.
.macro ref ⊂ select 3; nojust; boldit;
References:
.select 1; indent 0,8;
. ⊃
.
.macro sgn ⊂ BEGIN "signed" SKIP 2; NOFILL; group;
Sincerely,
.SKIP 3;
{author}
.END "signed"; ⊃
.
.macro sgnp ⊂ BEGIN "signedplain" SKIP 2; NOFILL; group;
Sincerely,
.SKIP 2;
John McCarthy
.END "signedplain"; ⊃
.
.macro reg ⊂BEGIN "regards" SKIP 2; NOFILL; group;
Best regards,
.SKIP 3;
{author}
.END "regards"; ⊃
.
.macro regp ⊂BEGIN "regardsplain" SKIP 2; NOFILL; group;
Best regards,
.SKIP 3;
John McCarthy
.END "regardsplain"; ⊃
.
.MACRO FAC ⊂ FILL ADJUST ⊃
.
.macro cb(head) ⊂ if lines<5 then next page else skip; once center; select 3
head
.⊃
.
.macro boldit ⊂ turn on "%";
. at """" ⊂ (if thisfont=1 then "%3" else "%1") ⊃;
. at "<" ⊂"%2"⊃; at ">" ⊂"%1"⊃;
.⊃
.at "∂AIL" data "∞"; ⊂
.letter(|data|,|John McCarthy↓Director↓Professor of Computer Science|);
.if on4=0 then start on4←1; FONT 4 "STA200"; end;
.if on5=0 then start on5←1; FONT 5 "NGB25"; end;
%4S%5 Artificial Intelligence Laboratory, STANFORD UNIVERSITY, Stanford, California 94305
.once turn on "→"
Telephone 415 497-4430→{dat}
.head;
.xgenlines←xgenlines-8;
.⊃
.
.at "∂CSL" data "∞"; ⊂
.letter(|data|,|John McCarthy↓Professor of Computer Science|);
.if on4=0 then start on4←1; FONT 4 "STA200"; end;
.if on5=0 then start on5←1; FONT 5 "NGB25"; end;
%4S%5 Department of Computer Science, STANFORD UNIVERSITY, Stanford, California 94305
.once turn on "→"
Telephone 415 497-4430→{dat}
.head;
.xgenlines←xgenlines-8;
.⊃
.
.at "∂HOM" data "∞"; ⊂
.letter(|data|,|John McCarthy|);
.if on5=0 then start on5←1; FONT 5 "NGB25"; end;
.begin select 5; center;
846 Lathrop Drive
Stanford, California 94305
.nofill; turn on "→"
Telephone 415 857-0672→{dat}
.head;
.end
.⊃
.
.AT "∂MEM" data "∞" ⊂
.letter("data",
."John McCarthy, Director, Artificial Intelligence Lab.");
.if on6=0 then start on6←1; font 6 "micr25"; end;
.if on7=0 then start on7←1; font 7 "ngb30"; end;
.SELECT 6; CENTER;
OFFICE MEMORANDUM * STANFORD UNIVERSITY * OFFICE MEMORANDUM
.SKIP; SELECT 7;
STANFORD ARTIFICIAL INTELLIGENCE LABORATORY
.SELECT 3; SKIP;
{DAT}
.memo;
.⊃
.
.AT "∂CSM" data "∞" ⊂
.letter("data",
."John McCarthy, Professor of Computer Science");
.if on6=0 then start on6←1; font 6 "micr25"; end;
.if on7=0 then start on7←1; font 7 "ngb30"; end;
.SELECT 6; CENTER;
OFFICE MEMORANDUM * STANFORD UNIVERSITY * OFFICE MEMORANDUM
.SKIP; SELECT 7;
DEPARTMENT OF COMPUTER SCIENCE
.SELECT 3; SKIP;
{DAT}
.memo;
.⊃
.
.at "∂SEN" data "∞"; ⊂
.letter(|data|,|John McCarthy↓Chairman, Stanford Chapter of SE2|);
.if on5=0 then start on5←1; FONT 5 "NGB25"; end;
.if on7=0 then start on7←1; font 7 "ngb30"; end;
.if on8=0 then start on8←1; font 8 "ngb25"; end;
.begin center;
%7 SE2
%8 (Scientists and Engineers for Secure Energy)
.skip
%5 846 Lathrop Drive, Stanford, California 94305
.end
.xgenlines←-4;
.once turn on "→"
Telephone 415 497-4430→{dat}
.head;
.⊃
.
.at "∂LOT" data "∞"; ⊂
.letter(|data|,|John McCarthy↓Director↓Professor of Computer Science|);
.if on9=0 then start on9←1; font 9 "beesix"; end;
.if on5=0 then start on5←1; FONT 5 "NGB25"; end;
.if on8=0 then start on8←1; font 8 "ngb25"; end;
.begin center
%9 LOTS
%8 (Stanford University Low Overhead Time-Sharing System)
.skip
.end
%5John McCarthy, Director
Artificial Intelligence Laboratory, STANFORD UNIVERSITY, Stanford, California 94305
.skip
.xgenlines←-4;
.once turn on "→"
Telephone 415 497-4430→{dat}
.head;
.⊃
.
.AT "∂MLOT" data "∞" ⊂
.letter(|data|,"John McCarthy, Director");
.if on6=0 then start on6←1; font 6 "micr25"; end;
.if on7=0 then start on7←1; font 7 "ngb30"; end;
.SELECT 6; CENTER;
OFFICE MEMORANDUM * STANFORD UNIVERSITY * OFFICE MEMORANDUM
.SKIP; SELECT 7;
STANFORD LOW OVERHEAD TIME-SHARING SYSTEM
.SELECT 3; SKIP;
{DAT}
.memo;
.⊃
.
.going←on4←on5←0; on6←on7←on8←on9←0;
.portion main; place text;